
#include <cassert>
#include <iostream>
#include <unordered_map>
using namespace std;

struct donor {
  int donor_id;
};

int main() {
  unordered_map<int, donor> mp(3);
  donor d0{10}, d1{11}, d2{12};

  mp[0] = d0;
  mp[1] = d1;
  mp[2] = d2;

  mp[0].donor_id += 1000;

  for (auto iter = mp.begin(); iter != mp.end(); ++iter) {
    auto scd = iter->second;
    scd.donor_id += 100;
    cout << iter->second.donor_id << endl;
  }

  for (auto iter = mp.begin(); iter != mp.end(); ++iter) {
    iter->second.donor_id += 1000;
  }

  for (auto iter = mp.begin(); iter != mp.end(); ++iter) {
    cout << iter->second.donor_id << endl;
  }
  return 0;
}